﻿var splitTokenONE = "UUUU";
var splitTokenTWO = "TTTT";
var splitTokenTHREE = "XXXX";
var splitTokenFOUR = "PPPP";

function checkBox(e) {
	e = e||event;/* get IE event ( not passed ) */ 
	e.stopPropagation? e.stopPropagation() : e.cancelBubble = true;
	
	var isChecked = $("input[type='checkbox']:first").is(":checked");

	if (isChecked) {
		$("input[type='checkbox']").prop("checked", true);
	} else {
		$("input[type='checkbox']").prop("checked", false);
	}
}

function logout() {
	$.cookie("userId", null );
	$.cookie("pwd", null );
	$.cookie("userName", null );
	$.cookie("systemName", null );
	$.cookie("QueryDateRange", null );
	$.cookie("isSU", null );	//是否為最高管理員
	$.cookie("accessList","NoRight");	//擁有的操作權限
	location.assign("index.html");
}

/**	檢查是否為IP **/
function checkIP(ip){
	var re = /^((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))\.((\d)|(([1-9])\d)|(1\d\d)|(2(([0-4]\d)|5([0-5]))))$/;
	return re.test(ip)?true:false; 
}

function getInPar(str) {
	return str.substring((str.indexOf("(")+1),(str.indexOf(")")));
}

/** 取得指定Grid，目前選擇row的指定欄位 
 *	grid	要操作的 table
 *	col	 	要取的cell在colModel中的名稱
 *	inPar	boolean值，有些欄位是如  訂單(OR), 為true時，則回傳OR，即括號中的值
 */
function getColVal(grid,col,inPar) {
	var sel_id = $("#"+grid).jqGrid("getGridParam", "selrow");
	var res = "";
	
	if (inPar) {
		var tmpStr = $("#"+grid).jqGrid("getCell", sel_id, col);
		res = getInPar(tmpStr);
	} else {
		res = $("#"+grid).jqGrid("getCell", sel_id, col);
	}
	return res;
}

/** 12/25 起沒有用了!! **/
/**	加入OPTION
 * tar		是指那個下拉bar
 * applet	使用那一支Applet
 * type		執行的動作
 * selItem	要被設定為selected的Item，其value為
 */
function insertOption(tar,applet,type,selItem,fc){
	$("#fc").val(fc);
	
	$.post(applet,$("#q_form").serializeArray(),function(resultSet) {
		$(".FormElement#"+tar+" option").remove();
		if (type == "add") {
			$(".FormElement#"+tar).append("<option role=\"option\" value=\"noSelect\">--請選擇--</option>");	
		}
		$.each(resultSet,function(i,res){
			var id = res.id;
			var name = res.name;
			var selected = "";
			if (type == "edit" && id==selItem ) {
				selected = "SELECTED";
			}
			
			$(".FormElement#"+tar).append("<option role=\"option\" value=\""+id+"\""+selected+">"+name+ " ("+id+")</option>");
		});
	},"JSON");
}



function refreshUI(bd,ind,isExistInd) {
	if (isExistInd) {
		var num = $("#"+bd+" tr").size()-1;
		  for (ini =0; ini<num; ini++) {	
			$("#"+bd+" tr td:nth-child("+ind+")")[ini].innerHTML = (ini+1);
		}	
	}
	
	$("#"+bd+" tr:even").attr("bgcolor","#CCCCCC");		//灰色
	$("#"+bd+" tr:odd").attr("bgcolor","#FFFFFF");		//白色		
}

/** 表格Header的CheckBox **/
function chkALL(a) {
	if ($("#" + a + "CheckALL").is(":checked")) {
		$("." + a).each(function() {
			$(this).prop("checked", true);
		});
	} else {
		$("." + a).each(function() {
			$(this).prop("checked", false);
		});
	}
}



/*	切換grid下方的  新增、修改、刪除	*/
function reconfigPermissions(isOpen,gd) {
    var ops = ['#add_'+gd, '#edit_'+gd, '#del_'+gd];
    $.each(ops, function (ix, value) {
        var $td = $(value);
        if (isOpen=='1') { $td.show(); }
        else { $td.hide(); }        
    });
}

/** 只能輸入數字 **/
function validateNumber(e, pnumber)
{
	var tcuid = $(e).attr("tcuid");
	if (!/^\d+$/.test(pnumber)) {
		var newValue =/^\d+/.exec(e.value);         
		if (newValue != null) {             
        	e.value = newValue;
    	} else {          
        	e.value = "";    
    	} 
    }
	
    return false;
}

/**	啟動過場動畫 **/
function openLoading(str){
	$("#loading").css("visibility", "visible").dialog({
		height : 130,
		resizable : false,
		modal : true,
		closeOnEscape : false,
		draggable : false
	}).children("label").html(str).parent().prev().hide();
	/*	.parent().prev().hide() 是為了移除title bar用的	*/
}
/**	關閉過場動畫 **/
function closeLoading(){
	$("#loading").dialog("close").css("visibility", "hidden");
}

/**	綁定 下拉吧 選擇的事件 **/ 
function selectSubSys(url) {
	
	var title = "資源群組";
	
	if ( url=="QueryEnv") {
		title="環境";
	} else if ( url=="QueryHost") {
		title="主機";
	} else if ( url=="QuerySquad") {
		title = "資源群組";
	} else if ( url=="QuerySqGroup") {
		$("#a_form #fc").val( "1" );
		title = "群組集合";
	} else if ( url=="QueryWCL") {
		$("#a_form #fc").val( "1" );
		title = "Web Console 清單";
	} else if ( url=="QueryPersonnel") {
		title = "人員";
	}
	
	$("#subsys").bind("change", function(){
		var subSysId = $("#subsys option:selected").val();
		var subSysName = $("#subsys option:selected").text();
		
		$("#a_form #subSysId").val(subSysId);
		
		$("subsys option#dOpt").remove();
		
		jQuery("#gd").jqGrid('setGridParam',{
			url: url,
			datatype: "json",
			postData: {
				bssId: function() { return $("select#bss option:selected").val(); },
				subSysId: function() { return subSysId; },
				fc: function() { return $("#a_form #fc").val(); }
			}
		}).jqGrid("setCaption","子系統："+subSysName+" 下轄"+title+"列表").trigger('reloadGrid');

		reconfigPermissions('1','gd');			
	});
}

/**	先查詢有那些子系統供下拉 **/
function querySubSys(fc) {
	$("#a_form #fc").val(fc);
	
	$.post("QuerySubSys",$("#a_form").serializeArray(),function(reses) {
		$.each(reses,function(i, res) {
			tmp = "<option class='forRemove' value='"+res.id+"'>"+res.name+" ("+res.id+")"+"</option>";
			$("#subsys").append(tmp);
		});
	}).fail(function() { alert("error"); });
}

/**	呼叫輸入查詢SVN條件的畫面 **/
function selectSVN(drivenBy) {
	width = 440;
	height = 260;
	
	//表示先前有查過
	if ( $("#fileSelectResult_tb").length ) {
		width = 1000;
		height = 530;
		
		//需求下轄程式(req)，每筆record前面是用 checkbox，反之共用程式(common)，則是radio
		if ( drivenBy == "req" ) {	//需求下轄程式
			if ( $("#fileSelectResult_tb:contains('input[type='radio']')") ) {
				$("#fileSelectResult_tb tr td.chk input[type='radio']").each(function(){
					tmp= "<input class='svnFileSelect' fileName='"+$(this).attr("fileName")+"' SVNpath='"+$(this).attr("SVNpath")+"' verSet='"+$(this).attr("verSet")+"' selectedVer='"+$(this).attr("selectedVer")+"' reqId='"+$(this).attr("reqId")+"' source='"+$(this).attr("source")+"' type='checkbox' />";
					$(this).parent().html(tmp);
				});
				$("#fileSelectRemove thead th:first").html("<input id='svnFileSelectCheckALL' type='checkbox' />");		//需求下轄程式的Header有 CheckALL 的選項
				$("#fileSelectRemove thead input:first").bind("click", function(){
					chkALL("svnFileSelect");	
				});
			}
		} else {	//共用程式
			if ( $("#fileSelectResult_tb:contains('input[type='checkbox']')") ) {
				$("#fileSelectResult_tb tr td.chk input[type='checkbox']").each(function(){
					tmp= "<input name='selectFile' fileName='"+$(this).attr("fileName")+"' SVNpath='"+$(this).attr("SVNpath")+"' verSet='"+$(this).attr("verSet")+"' selectedVer='"+$(this).attr("selectedVer")+"' reqId='"+$(this).attr("reqId")+"' source='"+$(this).attr("source")+"' type='radio' />";
					$(this).parent().html(tmp);
				});
				$("#fileSelectRemove thead th:first").html("");
			}
		}
	}
	
	$("#fileSelect #drivenBy").val(drivenBy);
	
	$("#fileSelect").css("visibility", "visible").dialog({
		resizable : false,
		width : width,
		height : height,
		show: "slide",
		hide: "slide",
		modal : true,
		buttons : {
			"關閉" : function() {
				if ( drivenBy == "req" ) {	//需求下轄程式
					$("input.svnFileSelect:checked").each( function(i){
						/*
						 * <<需求下轄程式區>>
						 */
						var fileName = $(this).attr("fileName");
						var SVNpath = $(this).attr("SVNpath");
						var verSet = $(this).attr("verSet");
						var selectedVer = $(this).attr("selectedVer");
						var reqId = $(this).attr("reqId");
						var source = $(this).attr("source");
						var selectFileSize = $("#fileReqMapping tr").size();
						
						fileDepType = "n";	//預設是以non-web的方式進行部署
						fileType = "<select fc='underReq' onchange='selFileDepType(this)'><option>non-web";
						Readonly = "";
						if ( isEndsWith(fileName,"__war") || isEndsWith(fileName,"__ear") ) {
							fileType += "</option><option selected='selected'>web";
							Readonly ="Readonly";
							fileDepType = "w";
						} else {
							fileDepType = "n";
						}
						
						fileType += "</option></select>";
						
						tmp = "<tr>"+
						"<td class='center'><button type='button'>-</button></td>"+		//刪除該列的按鈕
						"<td class='center'>"+selectFileSize+"</td>"+																			//流水號
						"<td class='content'>"+fileName.replace( new RegExp ( "__" , "gm" ), ".")+"</td>"+										//檔名
						"<td class='right' id='"+selectFileSize+"'><select verSet='"+verSet+"' id='"+SVNpath+"/"+fileName+"'></select></td>"+	//版次選擇
						"<td class='content'>"+fileType+"</td>"+																				//Web or non-Web
						"<td class='content'>"+SVNpath+"</td>"+																					//SVN路徑
						"<td><input type='text' id='dep_"+SVNpath+"/"+fileName+selectFileSize+"' Readonly="+Readonly+" value=''></td>"+			//部署路徑
						"<td><button type='button'>＊</button></td>"+					//資源群組的選擇
						"<td><ul class='squad "+reqId+"' id='ul_"+SVNpath+"/"+fileName+selectFileSize+"'></ul></td>"+							//資源群組的顯示
						"</tr>";
						$("#fileReqMapping").append(tmp);
						
						$("#fileReqMapping tr:last button:first").bind("click", function() {
							removeTar(this,'fileReqMapping',source);
						});
						
						/*	將 找尋 squad 或 squadGroup的功能，綁給*那個按鈕	*/
						$("#fileReqMapping tr:last button:last").attr("fileDepType",fileDepType).bind("click",function() {	//因為剛剛append，一定是最後一筆 tr
							if (source=='1') {	//來自交付那個書面		
								selDepConf(this ,'3', $(this).attr("fileDepType"));
				 			} else {
								selDepConf(this ,'4', $(this).attr("fileDepType"));
				 			}
						});
						
						if ( fileDepType=='w' ) {
							$("#fileReqMapping tr:last input[type='text']").attr("readonly",true);	//若為web程式，將部署路徑的input 設為不可輸入
						} else {
							$("#fileReqMapping tr:last input[type='text']").attr("readonly",false);	//若為non-web程式，將部署路徑的input 設為可輸入
						}
						
						refreshUI("fileReqMapping",selectFileSize,false);
						
						if (source==2) { chkIfLockSubSys(); }	//若是手動部署，要對子系統的選擇項進行管控
						
						tmp= "fileReqMapping td#"+selectFileSize+" select";
						genOption(verSet,selectedVer,tmp);
					});
				} else {
					$("input[name='selectFile']:checked").each( function(i){
						var fileName = $(this).attr("fileName");
						var SVNpath = $(this).attr("SVNpath");
						var verSet = $(this).attr("verSet");
						var selectedVer = $(this).attr("selectedVer");
						var reqId = $(this).attr("reqId");
						var source = $(this).attr("source");
						
						/** 
						 * 雙擊了SVN列出的檔案清單 
						 * <<共用程式區>>
						 **/
						$(".cf").attr("disabled",false);	//選擇檔案後，將檔案的編輯功能予以enable
						$("#fileSelect").dialog("close");	//關掉選擇檔案的 對話框
						$("#commSelName").val( fileName.replace( new RegExp ( "__" , "gm" ), ".") );
						$("#commSVNPath").html( SVNpath );
						$("#commVerSet").val(verSet);		//為了修改時不用再次查詢SVN，將這個檔案先前查的版本存起來
						
						$("#commExeWay option").remove();
						$("#commExeWay").append("<option>non-web</option>");
						$("#commExeWay").attr("disabled",false);
						
						if ( isEndsWith(fileName,"__war") || isEndsWith(fileName,"__ear") ) {
							$("#commDepPath").attr("readonly",true);
							$("#commExeWay").append("<option selected='selected'>web</option>");
							$("#commSelSqu").bind("click",function() {
								selDepConf(this,'1','w');	
							});
						} else {
							$("#commSelSqu").bind("click",function() {
								selDepConf(this,'1','n');	
							});
						}
						
						if ( !$("#reqListTable").length >0 ) {	
							tmp = "<div id='forRemoveReqList'><hr/><table id='reqListTable'><tr><th><button type='button' onclick=\"queryReqWindowOpen('underFile')\">+</button></th><th>＃</th><th>需求編號</th><th>需求名稱</th></tr></table></div>";
							$("#reqList").append(tmp);
							
						}
						tmp = "commFileVer";
						
						genOption(verSet,selectedVer,tmp);
					});
				}
				
				$(this).dialog("close");
			}
		}
	});
}

/**
 * 按下查詢SVN後，產生SVN檔案列表
 * 參數說明：
 *	tar：表示這些找到的資料，要產生在那個div中
 *	source：在那個畫面驅動這個method
 *		1 --> 發起自「交付」
 *		2 --> 發起自「手動式部署」
 **/
function genSvnList(tar,source) {
	$("#"+tar).hide();
	tmp = "<img id='svnLoading' alt='讀取中...' src='pic/ajax-loader.gif'>";
	$("#fileSelectResult").append(tmp);
	/*僅需求下轄程式才有*/
	var reqId = $("#reqSelectedId").val();
	var reqVal = $("#reqSelectedVal").val();
	$("#fileSelectRemove").remove();
	$.post("QuerySVN",{ fn:$("#fileName_q").val(),subSysId:$("#subsys option:selected").val() },function(reses) {
		$("#svnLoading").remove();
		if (reses.length > 0) {
			
			//若是需求下轄程式，則產生 Checkbox，若是 共用程式區，則用 Radio Button
			if ( $("#fileSelect #drivenBy").val() == "req" ) {
				tmp= "<input id='svnFileSelectCheckALL' type='checkbox' />";
			} else {
				tmp = "";
			}
			
			tmp = "<div id='fileSelectRemove'><hr/><table class='english_font'><thead><tr><td class='warning' colspan='5'>※勾選欲選擇的檔案</td></tr><tr><th class='center'>"+tmp+"</th><th>＃</th><th>File Name</th><th class='right'>Ver</th><th>modified date</th><th>SVN Path</th></tr></thead><tbody id='fileSelectResult_tb'></tbody></table></div>";
			$("#fileSelectResult").append(tmp);
			if ( $("#fileSelect #drivenBy").val() == "req" ) {
				$("#fileSelectRemove thead input:first").bind("click", function(){
					chkALL("svnFileSelect");	
				});
			}
			
			$.each(reses,function(i, res) {
				var id = res.id;
				var verSet = "";
				$.each(res.verSet, function(i, ver) {
					verSet += (ver+",");
				});
				//若是需求下轄程式，則產生 Checkbox，若是 共用程式區，則用 Radio Button
				if ( $("#fileSelect #drivenBy").val() == "req" ) {
					tmp= "<input class='svnFileSelect' fileName='"+id+"' SVNpath='"+res.home+"' verSet='"+verSet+"' selectedVer='"+res.ver+"' reqId='"+reqId+"' source='"+source+"' type='checkbox' />";
				} else {
					tmp= "<input  fileName='"+id+"' SVNpath='"+res.home+"' verSet='"+verSet+"' selectedVer='"+res.ver+"' reqId='"+reqId+"' source='"+source+"' type='radio' name='selectFile' />";
				}
				tmp = "<tr class='english_font'><td class='center chk'>"+ tmp +"</td><td class='right'>"+(i+1)+"</td><td>"+id.replace( new RegExp ( "__" , "gm" ), ".")+"</td><td class='right'>"+res.ver+"</td><td>"+res.lastUpdateDate+"</td><td>"+res.home+"</td></tr>";
				$("#fileSelectResult_tb").append(tmp);
			});

			if ( $("#fileSelect #drivenBy").val() == "req" ) {
				bindCheckBox("fileSelectResult_tb");
			}
			refreshUI("fileSelectResult_tb",reses.size,false);
			
			$("#fileSelect").dialog("option","width", 1000 ).dialog("option","height", 530 ).dialog({ position: { my: "center", at: "center", of: window } });
		} else {
			tmp = "<div id='fileSelectRemove' class='alert'><hr/>查無符合條件的檔案.</div>";
			$("#fileSelectResult").append(tmp);
			$("#fileSelect").dialog("option","width", 440 ).dialog("option","height", 260 ).dialog({ position: { my: "center", at: "center", of: window } });
		}
		$("#"+tar).show();
	},"JSON");
	$("#fileSelectResult").css("visibility", "visible");	
}


/* * 雙擊了SVN列出的檔案清單
 * 
 * 參數說明：
 * 	source：	在那個畫面驅動這個method
 *		1 --> 發起自「交付」
 *		2 --> 發起自「手動式部署」
 **/
function selectFile(fileName,SVNpath,verSet,selectedVer,reqId,source) {
	
	if ( $("#fileSelect #drivenBy").val() == "req" ) {
		
		 /*<<需求下轄程式區>>*/
		 
		var selectFileSize = $("#fileReqMapping tr").size();
		
		fileDepType = "n";	//預設是以non-web的方式進行部署
		fileType = "<select fc='underReq' onchange='selFileDepType(this)'><option>non-web";
		Readonly = "";
		if ( isEndsWith(fileName,"__war") || isEndsWith(fileName,"__ear") ) {
			fileType += "</option><option selected='selected'>web";
			Readonly ="Readonly";
			fileDepType = "w";
		} else {
			fileDepType = "n";
		}
		
		fileType += "</option></select>";
		
		tmp = "<tr>"+
		"<td class='center'><button type='button'>-</button></td>"+		//刪除該列的按鈕
		"<td class='center'>"+selectFileSize+"</td>"+																			//流水號
		"<td class='content'>"+fileName.replace( new RegExp ( "__" , "gm" ), ".")+"</td>"+										//檔名
		"<td class='right' id='"+selectFileSize+"'><select verSet='"+verSet+"' id='"+SVNpath+"/"+fileName+"'></select></td>"+	//版次選擇
		"<td class='content'>"+fileType+"</td>"+																				//Web or non-Web
		"<td class='content'>"+SVNpath+"</td>"+																					//SVN路徑
		"<td><input type='text' id='dep_"+SVNpath+"/"+fileName+selectFileSize+"' Readonly="+Readonly+" value=''></td>"+			//部署路徑
		"<td><button type='button'>＊</button></td>"+					//資源群組的選擇
		"<td><ul class='squad "+reqId+"' id='ul_"+SVNpath+"/"+fileName+selectFileSize+"'></ul></td>"+							//資源群組的顯示
		"</tr>";
		$("#fileReqMapping").append(tmp);
		
		$("#fileReqMapping tr:last button:first").bind("click", function() {
			removeTar(this,'fileReqMapping',source);
		});
		
			/*將 找尋 squad 或 squadGroup的功能，綁給*那個按鈕*/	
		$("#fileReqMapping tr:last button:last").attr("fileDepType",fileDepType).bind("click",function() {	//因為剛剛append，一定是最後一筆 tr
			if (source=='1') {	//來自交付那個書面		
				selDepConf(this ,'3', $(this).attr("fileDepType"));
 			} else {
				selDepConf(this ,'4', $(this).attr("fileDepType"));
 			}
		});
		
		if ( fileDepType=='w' ) {
			$("#fileReqMapping tr:last input[type='text']").attr("readonly",true);	//若為web程式，將部署路徑的input 設為不可輸入
		} else {
			$("#fileReqMapping tr:last input[type='text']").attr("readonly",false);	//若為non-web程式，將部署路徑的input 設為可輸入
		}
		
		refreshUI("fileReqMapping",selectFileSize,false);
		
		if (source==2) { chkIfLockSubSys(); }	//若是手動部署，要對子系統的選擇項進行管控
		
		tmp= "fileReqMapping td#"+selectFileSize+" select";
		
	} else {
		 
		 /* 雙擊了SVN列出的檔案清單 
		  <<共用程式區>>*/
		 
		$(".cf").attr("disabled",false);	//選擇檔案後，將檔案的編輯功能予以enable
		$("#fileSelect").dialog("close");	//關掉選擇檔案的 對話框
		$("#commSelName").val( fileName.replace( new RegExp ( "__" , "gm" ), ".") );
		$("#commSVNPath").html( SVNpath );
		$("#commVerSet").val(verSet);		//為了修改時不用再次查詢SVN，將這個檔案先前查的版本存起來
		
		$("#commExeWay option").remove();
		$("#commExeWay").append("<option>non-web</option>");
		$("#commExeWay").attr("disabled",false);
		
		if ( isEndsWith(fileName,"__war") || isEndsWith(fileName,"__ear") ) {
			$("#commDepPath").attr("readonly",true);
			$("#commExeWay").append("<option selected='selected'>web</option>");
			$("#commSelSqu").bind("click",function() {
				selDepConf(this,'1','w');	
			});
		} else {
			$("#commSelSqu").bind("click",function() {
				selDepConf(this,'1','n');	
			});
		}
		
		if ( !$("#reqListTable").length >0 ) {	
			tmp = "<div id='forRemoveReqList'><hr/><table id='reqListTable'><tr><th><button type='button' onclick=\"queryReqWindowOpen('underFile')\">+</button></th><th>＃</th><th>需求編號</th><th>需求名稱</th></tr></table></div>";
			$("#reqList").append(tmp);
			
		}
		tmp = "commFileVer";
	}
	genOption(verSet,selectedVer,tmp);
}

/* 增加版次旳選項 
 * 
 * 參數說明：
 * 		 verSet：自SVN查回來，該支檔案的版本變動記錄	
 * 	selectedVer：下拉bar中，被選擇所需要的版本
 * 		 selTar：SELECT 的 ID
 * */
function genOption(verSet,selectedVer,selTar) {
	$("#"+selTar+" option").remove();
	
	n = verSet.split(",");
	for(i=0;i<n.length-1;i++) {
		var SELECTED = "";
		if (n[i]==selectedVer) { SELECTED = " SELECTED"; }
		$("#"+selTar).append("<option "+ SELECTED +" >"+n[i]+"</option>");
	}
}

/*	檢查是否要解決對子系統選項 的 鎖定 */
function chkIfLockSubSys(){
	if ( $("table#banner:contains('部署程式')").size() > 0 ) {	//dep 中的 手動式部署 要用
		if  ( $("table#fileReqMapping tr").size() < 3 ) {	//僅有標題和一支程式，或什麼都沒有，或畫面初始
			$("select#subsys").prop("disabled",false);
		} else { $("select#subsys").prop("disabled",true); }
	} else {	//depApply2要用
		if ( $("#removeCommHook").size()==0 && $("table#deliList").size()==0 ) {	//共用程式區空了，需求下轄程式也空了
			$("select#subsys").prop("disabled",false);
		} else if ( $("#commFileList tr").size()==5 && $("table#deliList").size()==0 ) {		//共用程式僅剩一筆，需求下轄程式為空
			$("select#subsys").prop("disabled",false);
		} else if ( $("#removeCommHook").size()==0 && $("table#deliList tr").size() > 1 ) {		//共用程式為空，需求下轄程式僅剩一筆
			$("select#subsys").prop("disabled",false);
		} else {
			$("select#subsys").prop("disabled",true);
		}	
	}
}


function removeComm(tar,table,scfid) {
	if ( $("#commFileList tr").size()== 6 ) {		//表示僅剩一筆，刪了就沒了
		$("#removeCommHook").remove();
	} else {
		totalLength = parseInt( $(".commFileInd").size() );
		
		$(tar).parent().parent().next().remove();	/*	以下四筆是刪除檔案的 執行方式、SVN路徑、部署路徑、版次	*/
		$(tar).parent().parent().next().remove();	
		$(tar).parent().parent().next().remove();
		$(tar).parent().parent().next().remove();
		$(tar).parent().parent().remove();			/*	刪除Table中的第一個row，含檔名的那筆	*/
		
		
		for(removeIdx= $("."+scfid).attr("scfInd"); removeIdx < totalLength; removeIdx++) {
			/* 將所有class的index減一 */
			$("tr[scfInd='"+(parseInt(removeIdx)+1)+"']").attr("scfInd",removeIdx);
			$("tr[scfInd='"+removeIdx+"'] td.commFileInd").html(removeIdx);
		}		
	}
	
	/*	檢查是否要解決對子系統選項 的 鎖定 */
	chkIfLockSubSys();
	
	/*	判斷能否讓提交的按鈕出現 */
	chkIfSubmitAble();
}


/*
 * 移除清單內的檔案 
 * type 1：交付
 * type 2：手動部署
 * */
function removeTar(tar,table,type) {
	$(tar).parent().parent().remove();
	refreshUI(table,"2",true);
	
	if ( type=='2' ) {
		chkIfLockSubSys();
		chkReady();
	}
}

/** 
 * 	按下＊，要來選擇部署對象的設定
 * 		non-web 指定 squad
 * 		web 指定 squadGroup
 * 
 * 	參數說明：
 * 		obj	：	按下的那button的參照
 * 	procType：	執行動作的分類
 * 			1 -->	發起自 共用程式
 * 			2 -->	發起自 重新部署
 * 			3 -->	發起自 需求下轄程式
 * 			4 -->	發起自 手動部署
 * 	fileDepType	：	程式部署的方式
 * 			n -->	non-web
 * 			w -->	web
 *  **/
function selDepConf(obj,procType,fileDepType){
	/** 到後端讀取可以勾選的選項 **/
	var subSysId = $("select#subsys option:checked").val();
	tmp ="";
	
	if ( procType == "2" ) {
		subSysId = $("#reDepConfirmSingle select#selSub option:checked").val();
		$("#squadSelect select option:first").html( $("#reDepConfirmSingle select#selSub option:checked").html() );
	}
	
	$.post("QuerySubsysSquad",{ subSysId:subSysId,fileDepType:'n' },function(reses) {
		$("#squadSelect_tb tr").remove();
		$.each(reses,function(i, res) {
			var checked = "";
			
			if (procType == "4"|| procType == "3") {	//3,交付下的需求 或 4,手動式部署
				$(obj).parent().next().children("ul").children("li").each(function(i,str) {
					if (str.innerHTML==(res.id+"-"+res.name)) { checked = "checked"; }
				});	
			} else if ( procType == "2" ) {	//單檔重新部署
				$("#reDepConfirmSingle ul li").each(function(i,str) {
					if (str.innerHTML==res.name) { checked = "checked"; }
				});
			} else if ( procType == "1" ) {	//共用檔案
				$("#commonFileSelect ul").children("li").each(function(i,str) {
					if (str.innerHTML==(res.id+"-"+res.name)) { checked = "checked"; }
				});	
			}
			
			if (procType == "2") {
				tmp = "<tr><td class='center chk'><input type='checkbox' squadPath='"+res.squadPath+"' subsys='"+res.id+"' squad='"+res.name+"' class='subsysSquad' "+checked+"></td><td class='squ'>"+res.name+"</td></tr>";
			} else {
				tmp = "<tr><td class='center chk'><input type='checkbox' squadPath='"+res.squadPath+"' subsys='"+res.id+"' squad='"+res.name+"' class='subsysSquad' "+checked+"></td><td>"+res.id+"</td><td class='squ'>"+res.name+"</td></tr>";				
			}
			$("#squadSelect_tb").append(tmp);
		});
		
		bindCheckBox("squadSelect_tb");
		refreshUI("squadSelect_tb",reses.size,false);
	},"JSON");	
	
	$("div#divWCLSel table#wcl").remove();
	if ( fileDepType == 'w' ) {
		$("#squadSelect  div#divWCLSel").append("<table id='wcl'><thead><th>&nbsp;</th><th>群組集合</th></tr></thead></table><p>");
		
		$.post("QuerySqGroup",{ fc:"3",bssId:"MBMS", subSysId: subSysId },function(reses) {
				$.each( reses, function(i, res) {
					if ( res.id !=0 ) {	//0是無設定，故略過
						tmp = "<tr><td class='center'><input type='checkbox' sqGroup='"+res.squadPath+"'></td><td>"+res.name+" ("+res.id+")</td></tr>";
						$("table#wcl").append(tmp);	
					}
				});	
				$("table#wcl input[type='checkbox'").bind("click",function(){
					isChecked = $(this).is(":checked");
					tmp = $( this ).attr("sqGroup").split("UUUU");
					for ( i=0; i<tmp.length;i++ ) {
						$("#squadSelect_tb td.squ").each( function() {
							if ( $(this).html().indexOf( "("+tmp[i]+")") !== -1 ) {
								$(this).prev().prev().children("input[type='checkbox']").prop("checked", isChecked );	
							}
						});
					}
				});
		});
	}
	
	if ( procType == "2" ) { tmp = 200; } else {tmp=400;}
	$("#squadSelect").css("visibility", "visible").dialog({
		width : tmp,
		height : 350,
		show: "slide",
		hide: "slide",
		modal : true,
		buttons : {
			"關閉" : function() {	//將畫面目前的勾選狀態寫回
				sq = [];
				if (procType == "3" || procType == "4") {
					$(obj).parent().next().children("ul").children("li").remove();	
				} else if (procType == "2") {
					$("#reDepConfirmSingle ul li").remove();	
				} else if (procType == "1") {
					$("#commonFileSelect ul").children("li").remove();	
				}
				
				$(".subsysSquad").each(function(i,res) {
					var isChecked = $(this).prop("checked");
					if (isChecked) {
						var sqid = $(res).attr("squad");
						var subsysid = $(res).attr("subsys");
						var squadPath = $(res).attr("squadPath");
						sq.push({subsysid:getInPar(subsysid),sqid:getInPar(sqid)});
						if (procType == "3") {
							$(obj).parent().next().children("ul").append("<li>"+subsysid+"-"+sqid+"</li>");
						} else if (procType == "2") {
							$("#reDepConfirmSingle ul").append("<li>"+sqid+"</li>");
						} else if (procType == "1") {
							$("#commonFileSelect ul").append("<li>"+subsysid+"-"+sqid+"</li>");
						} else if (procType == "4") {
							$(obj).parent().next().children("ul").append("<li sp='"+squadPath+"'>"+subsysid+"-"+sqid+"</li>");
						}
					}
				});
				
				if (sq.length > 0) {
					if (procType != "2") {
						$("#sqCheck").val(JSON.stringify(sq));
						if (procType == "3" || procType == "4") {
							if ( $(obj).parent().prev().children("input").val() == "" ) {	//如果沒有輸入，就幫使用者查詢既有存在的
								$.post("QuQueryPa", {squadCount:sq.length,sqCheck:$("#sqCheck").val(),fn: $(obj).parent().prev().prev().prev().prev().prev().html() } ,function(res) {
									$(obj).parent().prev().children("input").val(res);
								},"TEXT");	
							}	
						}  else if (procType == "1") {
							if ( $("#commDepPath").val() == "" ) {	//如果沒有輸入，就幫使用者查詢既有存在的
								$.post("QueryPath", {squadCount:sq.length,sqCheck:$("#sqCheck").val(),fn: $("#commSelName").val()} ,function(res) {
									$("#commDepPath").val(res);
								},"TEXT");	
							}
						}
					}
				}
				if ( procType == "4") { chkReady(); }	//手動式部署需要檢查
				
				$("#squadSelect").css("visibility", "hidden");
				$(this).dialog("close");
			}
		}
	});
}

/*	判斷字串 str，是否以 suffix 結尾	*/
function isEndsWith(str, suffix) {
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

/*	目前選擇的程式，進行web, non-web的切換	*/
function selFileDepType(obj) {
	fDT = "n";
	if ( $(obj).val() == "web" ) {
		fDT="w";
		if ( $(obj).attr("fc") == "underReq" ) {
			$(obj).parent().next().next().children("input[type='text']").attr("readonly",true).val("").parent().next().children("button").attr("fileDepType",fDT);
			$(obj).parent().next().next().next().next().children("ul").children("li").remove();
			$(obj).parent().next().next().next().children("button").unbind().bind("click",function(){ selDepConf(this,'3',fDT); });
		} else if ( $(obj).attr("fc") == "commonFile" ) {
			$(obj).parent().parent().next().next().children("td").children("input[type='text']").attr("readonly",true).val("").parent().prev().prev().children("button").attr("fileDepType",fDT);
			$("#commSquLists ul li").remove();
			$("#commSelSqu").unbind().bind("click",function() { selDepConf(this,'1',fDT); });	//按下* 時，改查詢sqGroup
		}
	} else {
		fDT="n";
		if ( $(obj).attr("fc") == "underReq" ) {
			$(obj).parent().next().next().children("input[type='text']").attr("readonly",false).parent().next().children("button").attr("fileDepType",fDT);
			$(obj).parent().next().next().next().next().children("ul").children("li").remove();
			$(obj).parent().next().next().next().children("button").unbind().bind("click",function(){ selDepConf(this,'3',fDT); });
		} else if ( $(obj).attr("fc") == "commonFile" ) {
			$(obj).parent().parent().next().next().children("td").children("input[type='text']").attr("readonly",false).parent().prev().prev().children("button").attr("fileDepType",fDT);
			$("#commSquLists ul li").remove();
			$("#commSelSqu").unbind().bind("click",function() { selDepConf(this,'1',fDT); });	//按下* 時，改查詢sqGroup
		}
	}
}


/*
 * 計算目前手邊檔案 變數filePortfolio，
 * web, nonweb的組合，
 * 並會回傳計算的結果
 * 
 * 參數inc，代表包含的類型
 * ex: maniFilePortfolio("web")
 * 則若目前的filePortfolio值
 * 為1，則不變，回傳1
 * 為2，將其改為1，回傳1
 * 若3，則不變，回傳3
 * 	
 * 1為有web和nonweb，2為僅有nonweb，3為僅有web
 * 
 * */
function maniFilePortfolio( inc ) {
	if ( $("#filePortfolio").val()=="1"  ) {
		return 1;
	} else if ( $("#filePortfolio").val()=="2" ) {
		if ( inc=="web" ) {
			$("#filePortfolio").val("1");
			return 1;
		} else {
			return 2;
		}
	} else if ( $("#filePortfolio").val()=="3" ) {
		if ( inc=="web" ) {
			return 3;
		} else {
			$("#filePortfolio").val("1");
			return 1;
		}
	} else {
		if ( inc=="web" ) {
			$("#filePortfolio").val("3");
			return 3;
		} else {
			$("#filePortfolio").val("2");
			return 2;
		}
	}
}

//讓包含checkbox的那行Row，點任可一個 column，皆可觸發checkbox的點選，以方便使用者使用
function bindCheckBox(tbodyName) {
	$("#"+tbodyName + " td:not('.chk')").bind("click",function(){
		$(this).parent().children("td:first").children("input[type=checkbox]").attr("checked",!$(this).parent().children("td:first").children("input[type=checkbox]").is(':checked') );
	});
}

// 初始化頁面
function initPage(title) {
	$("div#header").html( genHeader( title ) );
	$("h3#banner").html( $.cookie("systemName") );
	$("td#user").html("目前登入帳號："+$.cookie("userId"));
	$(".mm").prop("title","歡迎使用部署系統").bind("click",function(){ location.assign("menu.html"); });
	$("#logout").prop("title","登出系統").bind("click",function(){ logout(); location.assign("index.html"); });
}

/*	產生每個頁面上方的區塊	*/
function genHeader( slogan ) {
	return "<div><table id='banner'><tr><td class='mm'><button type='button'>回<br>主<br>選<br>單</button></td><td class='mm'><h3 id='banner'></h3>--"+slogan+"--</td><td><img id='logout' src='pic/logout.png'></td></tr><tr class='right'><td id='user' colspan='3'></td></tr></table></div><div id='outer2'><div id='sidebar2'><ul id='nav'></ul></div></div>";
}